package org.mclll.xwangplugin.log;

import java.util.logging.Level;

/**
 * @author: geduo
 * @date: 2023/9/22 14:37
 */
public interface LogUtil {

    /**
     * 日志级别info
     * @param msg -
     */
    default void info(String msg) {
        if (!checkDebug()) {
            return;
        }
        LoggerFactory.LOGGER.info(msg);
    }

    /**
     * 日志级别info
     * @param msg -
     * @param args -
     */
    default void info(String msg, Object... args) {
        if (!checkDebug()) {
            return;
        }
        LoggerFactory.LOGGER.log(Level.INFO, msg, args);
    }

    /**
     * 日志级别error
     * @param msg -
     */
    default void error(String msg) {
        if (!checkDebug()) {
            return;
        }
        LoggerFactory.LOGGER.log(Level.FINE, msg);
    }

    /**
     * 日志级别error
     * @param msg -
     * @param args -
     */
    default void error(String msg, Object... args) {
        if (!checkDebug()) {
            return;
        }
        LoggerFactory.LOGGER.log(Level.FINE, msg, args);
    }

    /**
     * 日志级别error
     * @param msg -
     * @param e 异常堆栈
     */
    default void error(String msg, Throwable e) {
        if (!checkDebug()) {
            return;
        }
        LoggerFactory.LOGGER.log(Level.FINE, msg, e);
    }
    
    /**
     * 日志开关
     */
    default boolean checkDebug() {
        return true;
    }
}
